En este caso aplicamos a los 3 contenedores que deben comportarse como columnas la propiedad display: table-cell, que hace que tengan el mismo comportamiento que las celdas de una tabla. Eso significa, entre otras cosas, que las celdas que comparten la misma fila deben tener la misma altura, que sirve en este caso para solucionar el problema anterior.
Aquí el problema principal es que no podemos definir márgenes entre las celdas, puesto que no es una propiedad disponible en una tabla. Del mismo modo, los valores de anchura definidos para las celdas pueden no comportarse como esperamos si no tienen un valor coherente con la anchura de su contenedor. Porque por muy limitado que sea el espacio, todas las celdas de una misma tabla deben estar juntas, no pueden cambiar de fila si el espacio no es suficiente.
El CSS en este caso es el mismo para construir la estructura de la tabla, sólo cambiamos las clases CSS aplicadas:
<section class="fila2">
<article class="col2">
<p class="resaltado"> </p>
<p class="problemas"></p>
</article>
<article class="col2">
<p>...</p>
</article>
<article class="col2">
<p></p>
</article>
</section>
Y este es el CSS para indicar a los elementos que deben tener un comportamiento visual como si fueran componentes de una tabla:
.fila2 {
width: 80%;
margin: auto;
border: 1px solid;
}
.col2 {
display: table-cell;
width: 33%;
background-color: lightcyan;
padding: 2%;
border-right: 1px solid;
}