For this to be true, we need to specify that $p$ has integer coefficients: without this assumption, $p(x) = \frac16x(x-1)(x+1)$ is a counterexample, with roots at $-1,0,$ and $1$, but $p(2)=1$.
Suppose a polynomial $p(x)$ with integer coefficients has three or more distinct integral roots. This means that $p(x) = (x-a_0)(x-a_1)(x-a_2)q(x)$, and $q(x)$ also has integer coefficients (and so takes on integer values). For $p(x)$ to equal $1$ for some $x$, we then have three cases:
At least two of $x-a_0,x-a_1,$ and $x-a_2$ are equal to $-1$, and both the third and $q(x)$ are equal to either $1$ or $-1$
$q(x)$ and one of $x-a_0,x-a_1,$ and $x-a_2$ are equal to $-1$, and the other two are equal to $1$.
All four of the factors are equal to $1$.
This is because the only ways to write $1$ as a product of four integers is as $$1 = (-1)^4 = (-1)^2 \cdot (1)^2 = (1)^4.$$
In all three of these cases, we have $x-a_i = x-a_j$ for some $i\neq j$, so $a_i = a_j$ and the roots are not distinct.