Adapting the answer given by @march, where the second argument of Flatten is used to transpose a ragged array (see this answer):
Set-1 may be generated as follows:
{list1a, list2a, list3a}=Distribute[#, List]&/@(list /.{x_,y_,z_}:> {y,x,z})//Flatten[#,{{2}}]&
list1a
list2a
list3a
{{1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}}
{{3, -2}, {4, -2}, {5, -2}}
{{3, 2}, {4, 2}, {5, 2}}
Set 3 (as per @march answer)
{list3a, list3b, list3c}=Distribute[#, List]&/@list//Flatten[#,{{2}}]&
{{1, 0}, {2, 0}, {3, -2}, {4, -2}, {5, -2}}
{{3, 0}, {4, 0}, {5, 0}}
{{3, 2}, {4, 2}, {5, 2}}
Set-2
As given by the OP the lists may be obtained as follows (in this case a simple Transpose is all that is required):
{list1b, list2b,list3b}=Distribute[#, List]&/@(list /.{x_,y_,z_}:> {y,x,z}/.{0}:> {0,0,0})//Transpose
{{1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}}
{{1, 0}, {2, 0}, {3, -2}, {4, -2}, {5, -2}}
{{1, 0}, {2, 0}, {3, 2}, {4, 2}, {5, 2}}
But perhaps the OP requires something like the following?
{list1x, list2x,list3x}=Distribute[#, List]&/@(list /.{x_,y_,z_}:> {z,x,y})//Flatten[#,{{2}}]&
{{1, 0}, {2, 0}, {3, 2}, {4, 2}, {5, 2}}
{{3, -2}, {4, -2}, {5, -2}}
{{3, 0}, {4, 0}, {5, 0}}
Comment
In all cases, (as shown in the @march answer), Thread may be substituted for Distribute
(Distribute[#, List]&/@(list /.{x_,y_,z_}:> {y,x,z})//Flatten[#,{2}]&)===(Thread/@(list /.{x_,y_,z_}:> {y,x,z})//Flatten[#,{2}]&)
{{{1, 0}, {2, 0}, {3, 2}, {4, 2}, {5, 2}}, {{3, -2}, {4, -2}, {5, -2}}, {{3, 0}, {4, 0}, {5, 0}}}(and there are other possibilities)? @march has given a very nice solution based on a ragged Transpose which is adaptable to Set-1 but (it seems to me) not Set-2 – user1066 Feb 16 '20 at 20:32