Print three columns vertically separated by space(s) Task

Take input string separated by space.
Sort the words alphabetically.
Print them out vertically in 3 columns separated by space(s).

Challenge

All three column's heights should be as evenly weighted as possible.
All three column's should be left aligned.

This is code-golf, so shortest code wins!
Example
If the input is:
&quot;cat caterpillar pie frog elephant pizza&quot;, 

The output should be:
cat         elephant pie
caterpillar frog     pizza

Please beware of cases, if input is:
&quot;a b c d e f g&quot; 

Should be printed as:
a c e
b d f
    g

# or

a d f
b e g
c

# and not

a d g
b e
c f
Husk, 24 17 bytes

TmoTT' §CȯmLTC3Ow


Try it online!

Explanation

This was a surprisingly tricky challenge, as Husk currently lacks a builtin for breaking a list into a given number of parts.

TmoTT' §CȯmLTC3Ow  Implicit input, say s="bbb a cc ddd e"
                w  Split at spaces: x=["bbb","a","cc","ddd","e"]
             C3    Cut into slices of length 3: [["bbb","a","cc"],["ddd","e"]]
            T      Transpose: [["bbb","ddd"],["a","e"],["cc"]]
         ȯmL       Map length: [2,2,1]
                   These are the correct lengths of the columns.
       §C      O   Sort x and split into these lengths: [["a","bbb"],["cc","ddd"],["e"]]
                   These are the columns of the correct output, without padding.
 mo                For each column,
    T'             transpose and pad with spaces: [["ab"," b"," b"],["cd","cd"," d"],["e"]]
   T               then transpose back: [["a  ","bbb"],["cc ","ddd"],["e"]]
T                  Transpose the whole list: [["a  ","cc ","e"],["bbb","ddd"]]
                   Implicitly join each row by spaces,
                   join the resulting strings by newlines and print.