Once you discover that the third difference is constant you know that the polynomial is third degree. Denote it by $P(x)$.
We can see that the horizontal lines $y=3$ and $y=-9$ cross the graph of $y=P(x)$ three times each. Therefore the graph of the polynomial $Q(x)=P(x)-3$ has $x$-intercepts $(-2,0),\,(-1,0)$ and $(3,0)$. Therefore for some leading coefficient $a$
\begin{eqnarray}
P(x)-3&=&a(x+2)(x+1)(x-3)\\
P(x)&=&a(x+2)(x+1)(x-3)+3\\
&=&ax^3-7ax-6a+3
\end{eqnarray}
We know that when $x=0$, $y=-3$ so $a=1$. Therefore
$$P(x)=x^3-7x-3$$
The same result can be had using the three values of $-9$ since the graph of $y=P(x)+9$ has $x$-intercepts $(-3,0),\,(1,0)$ and $(2,0)$. Therefore
\begin{eqnarray}
P(x)+9&=&a(x+3)(x-1)(x-2)\\
P(x)&=&a(x+3)(x-1)(x-2)-9\\
&=&ax^3-7ax+6a-9
\end{eqnarray}
In this case, $6a-9=-3$ so $a=1$. And we obtain the same result.
Note: This approach works only when an $n$th degree polynomial sequence $\{y_k\}$ has $n$ values of $x_k$ for which the $y_k$ values are equal. In general you need the method used by Ahmed S. Attaalla in his answer.
Suppose $P$ is a degree $n$ polynomial with $P(x_k)=y_k$ and that for $n$ different values of $k$ we have $y_k=c$. Then for those same $n$ values of $k$ it will be true that the polynomial $Q(x_k)=P(x_k)-c$ will have $y_k=0$ since for those values of $k$, $Q(x_k)=P(x_k)-c=c-c=0$. Knowing the $n$ $x$-intercepts of $Q(x)$ allows us to factor $Q(x)$. Adding $c$ to $Q(x)$ gives us $P(x)$. We can then use one of the given values of $(x,P(x))$ to find the value of $a$.