>Now I can do this with an empty row, like this:
> \hspace{2cm} & \hspace{2cm} & \hspace{2cm} \\
>but this leaves an undesired vertical gap.
\begin{tabular}{p{2cm}p{2cm}p{2cm}}
And if all your entries fit within 2cm, all those entries
are on a single line.
To replace "c" columns, i is best to have array.sty in action
and do
\begin{tabular}{p{2cm}>{\centering}p{2cm}p{2cm}}