Я решил бы гридами (может меня кто то и поправит и скажет что гриды не нужны).
У контейнера пишешь 2 свойства по сути
display: grid;
grid-template-columns: repeat(3, 1fr);
И все ровненько по сеточке. Можно добавить
grid-gap: 20px;
и вот уже
margin
не нужен