　まず，任意の複素数係数多項式 $P$ について，$P(x)-x$ が重根を持たないならば $P(P(x)) - x$ は $P(x) - x$ で割り切れる．
<details><summary>理由<\/summary>
　$P(x)-x=0$ の任意の解 $\alpha$ について，$P(P(\alpha))-\alpha=0$ となるため．
<\/details>

よって，$2000=m$ とすれば
$$\begin{aligned}
-p &= f(f(n))-n \\\\
&= (n^2+3n-m^2)^2+3(n^2+3n-m^2)-m^2-n\\\\
&=n^4+6n^3+(12-2m^2)n^2+(8-6m^2)n+m^4-4m^2\\\\
&=(n^2+2n-m^2)(n^2+4n-m^2+4)\\\\
&=((n+1)^2-2000^2-1)(n+2002)(n-1998)
\end{aligned}$$
が分かる．$n+2002$ と $n-1998$ の差が $4$ であることに注意するとこれら $2$ 数の絶対値は少なくとも一方は $1$ でない．したがって $p$ が素数であるために $(n+1)^2-2000^2-1$ の絶対値が $1$ であることが必要であるので $n=1999,-2001$ となる．このうち $p$ が素数であるのは $n=1999$ のときである．以上より与式を満たすのは $(n, p) = (1999, 4001)$ のみと分かる．特に解答すべきは $\bf{7997999}$ である．
公式解説
https://onlinemathcontest.com/contests/omc211/editorial/4458
　$f(f(x))-x$ を因数分解するパートの想定解とは異なる方法です.  
一般に, $h(x)=x^2+ax+b$ に対し, $h(x)-h(y)=(x-y)(x+y+a)$ となる事を利用します.  

$h(x)=f(x)+x$ とします.  この時, $h(x)$ の $x$ の係数は $4$ であるので, 

$$\begin{aligned}
f(f(x))-x&=f(f(x))+f(x)-f(x)-x\\\\
&=h(f(x))-h(x)\\\\
&=(f(x)-x)(f(x)+x+4)
\end{aligned}$$

と因数分解できます.
因数分解の別の方法
https://onlinemathcontest.com/contests/omc211/editorial/4458/427
　$f(x)=x^2+3x-4000000$ と定めます. 以下の等式を満たす整数 $n$ と 素数 $p$ の組 $(n,p)$ 全てについて，$np$ の総和を求めてください. 
$$n=f(f(n))+p$$