Find polynomials $P(x)P(x-3) = P(x^2)$ 
Find all polynomials  $P \in \Bbb R[x]$ such that $P(x)P(x-3) = P(x^2) \quad \forall x \in \Bbb R$

I have a solution but I'm not sure about that. Please check it for me.
It is easy to see that $P(x) = 0, P(x) = 1$ satisfied.
Consider $P(x) \neq c$ :
We have $P(x+3)P(x) = P((x+3)^2)$
If $a$ is a root of $P(x) $ then $a^2$ and $(a+3)^2$ are roots of $P(x)$.
If $|a| > 1$, then $ |a^2| = |a||a| > |a| \Rightarrow P(x)$ has infinitely many roots.
If $0 < |a| < 1$, then $|a^2| = |a||a| < |a| \Rightarrow P(x)$ has infinitely many roots.
If $a = 0 \Rightarrow (a+3)^2 = 9$ is a root of $P(x)$, so  $P(x)$ has infinitely many roots.
Hence, every root $a$ of $P(x)$ has $|a| = 1$. So $1 = |(a+3)^2| = (|a+3|^2) \Rightarrow |a+3|=1$.
We have $a + 3 = \cos\alpha + i\sin\alpha + 3 \Rightarrow (\cos\alpha+3)^2 + \sin^2\alpha = 1 \Rightarrow \cos\alpha = -\frac{3}{2}\ (\text{impossible}).$
$P(x) = 0, P(x) = 1$ are all the results.

Considering 
$$
P(x)P(x-b)=P(x^2),\ \ \ b \ne 0\ \ \ \ (1)
$$
As long as $P(x^2)$ is even then $P(x)P(x-b)$ is also even then
$$
P(b)P(0) = P(b^2)
$$
because making $x = b$ in $(1)$ we have $P(b)P(0) = P(b^2)$, As this is for a generic $b$ we have $P(x)P(0) = P(x^2)$
or
$$
P(x)P(0) = P(x^2) = P(-x)P(-(x+b))
$$
which implies that $P(x)$ is even as well as $P(x+b)$ 
This should be true for all $b \ne 0$ so the solution is $P(x) = C_0$
Finally, according to $C_0^2=C_0$ we conclude that $C_0 = 0$ or $C_0 = 1$
