Tables with lots of columns, or lots of text, tend to overflow. A fix would be to set a maximum width for the columns, like so:
\begin{tabular}{|p{.33\textwidth}|p{.33\textwidth}|p{.33\textwidth}|}
the syntax is: p{<size>}, in this case we have 3 columns so it's 1/3 (or 0.33) times the width of the text area.