То, что вам нужно, сложно, потому что ваш HTML группирует элементы два и три.
Самое лучшее решение - это изменить ваш HTML.
На всякий случай, если это невозможно, выможет установить обходной путь с помощью display: содержимое элемента боковой панели (это делает элемент исчезающим из потока)
@media(max-width: 4600px) {
.container {
display: flex;
flex-direction: column;
background-color: lightblue;
}
.header {
order: 2;
}
.three {
order: 3;
}
.sidebar {
display: contents;
}
}
<div class="body">
<div class='container'>
<div class='header'>
<div class="one">
one
</div>
hello
</div>
<div class='sidebar'>
<div class="two">
two
</div>
<div class="three">
three
</div>
</div>
</div>
</div>