Вообще-то на CSS можно без проблем такое сделать. По пути наименьшего сопротивления → на гридах с параметром 1fr для шаблона по высоте. На флексбоксах тоже такое можно муткануть, но не так приятно, как на гридах.
А на JS надо брать
размер элемента, можно сразу три, чтобы сравнивать и брать
больший, а затем присваивать его всем в качестве min-height (иначе при перерасчетах он будет всегда фикс высоту выдавать).
Желательно это все завернуть в функцию, которую вызвать при инициации скрипта И запустить в
вотчере события изменения размера окна.