Polynomial $p(a) = 1$, why does it have at most 2 integer roots?

If $x_1, x_2, x_3$ are three distinct integer roots of $p$, we can write $$p(x)=(x-x_1)(x-x_2)(x-x_3)q(x)$$ and find $$1=(a-x_1)(a-x_2)(a-x_3)q(a)$$ where $a-x_1, a-x_2, a-x_3$ are pairwise distinct integers and $q(a)$ is a nonzero integer. At most two of $a-x_1, a-x_2, a-x_3$ can be $\in\{\pm1\}$.


Hint $\ $ It is the special case $\,\color{#c00}{f(n)=1} $ of the following general

Key Idea $\ $ The possible factorizations of a polynomial $\in\Bbb Z[x]$ are constrained by the factorizations of the integer values that the polynomial takes. For a simple example, if some integer value has few factorizations (e.g. a unit $\,\pm1 $ or prime $p$) then the polynomial must also have few factors, asssuming that that the factors are distinct at the evaluation point. More precisely

If $\, f(x) = f_1(x)\cdots f_k(x)\,$ and $\,f_i\in\Bbb Z[x]\,$ satisfy $\color{#0a0}{f_i(n) \ne f_j(n)}\,$ for $\,i\ne j,$ all $\,n\in \Bbb Z$

$\quad \color{#c00}{f(n) =\pm1}\,\Rightarrow\, k\le 2\ $ else $1$ would have $\rm\,3\,\ \color{#0a0}{distinct}$ factors $\,f_1(n),f_2(n),f_3(n)$

$\quad f(n) = \pm p\,\Rightarrow\, k\le \color{#c0f}3\ $ since a prime $p$ splits into a most $\,\color{#c0f}3\,$ distinct factors $\,1,-1,\pm p$

Yours is a special case of the first (unit) case, where the $f_i$ are linear.

Remark $\ $ One can push the key idea to the hilt to obtain a simple algorithm for polynomial factorization using factorization of its integer values and Lagrange interpolation. The ideas behind this algorithm are due in part to $ $ J. I. Bernoulli (1708), F. T. Schubert (1794), L. Kronecker (1882) and B. A. Hausmann (1937). See this answer for references.