Usted sabe que $p \in \mathbb{R}[X]$ , por lo que al factorizarlo con polinomios irreducibles siempre se puede escribir como :
$$p = \lambda \prod_{i=1}^r(X-x_i)^{\alpha_i}\prod_{j=1}^s(X^2+b_jX+c_j)^{\beta_j}$$
Con todo $x_i$ que son reales y distintos, y $\forall j \in \{1,\dots,q \}, (b_j,c_j)\in \mathbb{R}^2$ verificando $b_j^2-4c_j<0$ .
Si uno de los $\alpha_i$ era un número impar para que pudieras comprobar que $p$ cambiaría de signo cerca de $x_i$ implica que todos los $\alpha_i$ son números pares (porque sabes que $p$ tiene siempre el mismo signo). Ahora puede comprobar que $\lambda \geq 0$ .
Ahora vamos a factorizar $\displaystyle\prod_{j=1}^s(X^2+b_jX+c_j)^{\beta_j}$ en $\mathbb{C}[X]$ : $$\prod_{j=1}^s(X^2+b_jX+c_j)^{\beta_j} = \prod_{j=1}^s(X-z_j)^{\beta_j}\prod_{j=1}^s(X-\overline{z_j})^{\beta_j}$$
Pero puedes escribir $\displaystyle \prod_{j=1}^s(X-z_j)^{\beta_j} = g_1+ig_2$ donde $g_1,g_2\in \mathbb{R}[X]^2$ Por lo tanto:
$$\prod_{j=1}^s(X-\overline{z_j})^{\beta_j} = \overline{\prod_{j=1}^s(X-z_j)^{\beta_j} } = \overline{g_1+ig_2}=g_1-ig_2$$
Así: $$\displaystyle \prod_{j=1}^s(X^2+b_jX+c_j)^{\beta_j} = \prod_{j=1}^s(X-z_j)^{\beta_j}\prod_{j=1}^s(X-\overline{z_j})^{\beta_j} = (g_1+i g_2)(g_1-ig_2) = g_1^2+g_2^2$$
Por último, al tomar $f_1 = \sqrt{\lambda} \left(\displaystyle \prod_{i=1}^r (X-x_i)^{\alpha_i/2}\right)g_1$ y $f_2 =\sqrt{\lambda} \left(\displaystyle \prod_{i=1}^r (X-x_i)^{\alpha_i/2}\right)g_2$ lo has hecho:
$$\boxed{f_1,f_2 \in \mathbb{R}[X] \text{ such that } p = f_1^2+f_2^2}$$