Maybe something like:
g2 = ExampleData[{"NetworkGraph", "ZacharyKarateClub"}];
g2 = SetProperty[g2, {VertexLabels -> "Name", ImagePadding -> 20, ImageSize -> 400}];
fgp = FindGraphPartition[GraphComplement[g2], 3];
mpg = Graph[Flatten@fgp, EdgeList[g2],
GraphLayout -> {"MultipartiteEmbedding", "VertexPartition" -> (Length /@ fgp)},
VertexLabels -> "Name",
ImagePadding -> 20, ImageSize -> 400];
Row[{g2, mpg}]
CommunityGraphPlot[g2, fgp, Method -> "Hierarchical"]