MATL, 1515 12 bytes
4:"3tYL@X!0cyPytP
Try it online!Try it online! Outputs all matrices without separation. Note that the output is unambiguous.
Alternatively, this version uses a line as separator, for 15 bytes.
How it works
4: % Range [1 2 3 4]
" % For each k in that range
3tYL % Magic square of size 3 (gives one of the 8 possible squares)
@ % Push k
X! % Rotate matrix 90 degrees k times
0c % Push character 0 (displayed as space). Used as separator
yt % Duplicate from above: pushes copy of the latest matrix
P % Flip vertically
y % Duplicate from above: pushes character 0 again
% End (implicit)
% Display stack, bottom to top (implicit)