Separating list with nested sublists of different lengths

Consider the following list, with sublists of different lengths

list = {{{0.8, 0.8, 0.8}}, {{1, 1, 1}, {4, 1, 1}, {3, 3, 2}}, {{1.2, 
     1.2, 1.2}}, {{1.4, 1.4, 1.4}}, {{1.6, 1.6, 1.6}, {4, 2, 2}}};
Map(Length, list); (*{1, 3, 1, 1, 2}*)
n = Max(%); (*3*)

how can this this list be separated into n list of the length of the original list, where the positions of the elements are maintained, i.e, the output should be

e1={{{0.8, 0.8, 0.8}}, {{1, 1, 1}}, {{1.2, 1.2, 1.2}}, {{1.4,1.4,1.4}}, {{1.6, 1.6, 1.6}}}
e2={{}, {{4, 1, 1}}, {}, {}, {{4, 2, 2}}}
e3={{}, {{3, 3, 2}}, {}, {}, {}}