<s>[INST] 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.
 [/INST] You point out that if $a$ is a root then $a^{2}$ is a root and $a+3$ is a root.
You don't need to divide into three cases to determine that means either infinitely or zero roots. 
By induction  $a + 3k; k \in \mathbb N$ are roots.  If $j\ne k$ then $a+3j \ne a + 3k$ so if there is one root $a$ there are at least countably infinite distinct roots.  So there are either zero roots, of infinitely many roots.
Magnitude is irrelevant[1]
Only trivial constant polynomials have infinite or zero (complex) roots so that means $P(x) = c$ for some $c$ where $c^2 = P(x)P(x-3) =P(x^2) = c$.
[1]
Although if $a$ is a root then $a +3$ is a root.  And  if $|a+3| < 1$ then $|a+3| + |a|=|a+3| + |-a| \ge |(a+3)+(-a)| =|3|=3$ so $|a|\ge 3-|a+3| > 2$.  So at least one root is $\ge 1$.
</s>