I don't know about setting it to 3 different pages, but I can shorten your code a bit. Does this work for you?

Sub Print_CP055()
Dim i As Integer, PrntArea As Variant
Application.ScreenUpdating = False
'Change page settings
With ActiveSheet.PageSetup
    .CenterHorizontally = True
    .CenterVertically = True
    .Orientation = xlLandscape
    .FitToPagesWide = 1
    .FitToPagesTall = 1
    .LeftMargin = Application.InchesToPoints(0)
    .RightMargin = Application.InchesToPoints(0)
    .TopMargin = Application.InchesToPoints(0)
    .BottomMargin = Application.InchesToPoints(0)
    .HeaderMargin = Application.InchesToPoints(0)
    .FooterMargin = Application.InchesToPoints(0)
    .PrintQuality = 600
End With
'variable with the names of the 3 ranges
PrntArea = Array("Freezer_CP055_1", "Freezer_CP055_2", "Freezer_CP055_3")
'loops through the number of items in the PrntArea variable
For i = 0 To UBound(PrntArea)
    'sets the print area to the next item in the PrntArea _
    variable each time it loops--should have 3 different _
    printouts, one for each range in PrntArea
    ActiveSheet.PageSetup.PrintArea = PrntArea(i)
    MsgBox "ok"
    'Print
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Preview:=False, Collate:=True
Next i
Application.ScreenUpdating = True
End Sub