Modify the HTML output of each related template to reflect a 3 column layout. Include all related CSS to achieve this in style.css. Be sure to do so in such a way that with narrower screens the columns will stack vertically instead of across. If you include a sidebar, it’s essentially just a 4th column. However it’ll have widget content instead of post listings.
Assuming all 3 columns will have post listings ordered vertically, your template loop could keep track of how many posts have been output and start a new column after 1/3 of the posts have been output. For horizontal ordering, it’s really more of a grid layout than column. You’d just set each post’s container width to be 33% of full width (less the sidebar width) and be floated left.
This works best if the listings only include fixed length excerpts of content. Then all posts are roughly the same height. Laying out full content posts gets complicated because of the greatly differing heights. You might consider doing a masonry style layout with available JS libraries.