Kimmy, en la comparación ($cuenta == 3) debes cerrar un tr, la última es por si quedo un tr abierto.
Cierto, verificar si hay tr abierto y cerrar la tabla van fuera del foreach y, tienes razón
mogurbon, esa comparación para saber si hay un tr abierto debería ser ($cuenta > 0)