import PySimpleGUI as sg

layout = [[sg.Text('Window 1'), ],
          [sg.Input(do_not_clear=True)],
          [sg.Text('',size=(20,1),  key='_OUTPUT_')],
          [sg.Button('Next >'), sg.Button('Exit')]]

win1 = sg.Window('Window 1').Layout(layout)

win3_active = win2_active = False
while True:
    if not win2_active:
        ev1, vals1 = win1.Read()
        if ev1 is None or ev1 == 'Exit':
            break
        win1.FindElement('_OUTPUT_').Update(vals1[0])

    if not win2_active and ev1 == 'Next >':
        win2_active = True
        win1.Hide()
        layout2 = [[sg.Text('Window 2')],
                   [sg.Button('< Prev'), sg.Button('Next >')]]

        win2 = sg.Window('Window 2').Layout(layout2)

    if win2_active:
        ev2, vals2 = win2.Read()
        if ev2 in (None, 'Exit', '< Prev'):
            win2_active = False
            win2.Close()
            win1.UnHide()
        elif ev2 == 'Next >':
            win3_active = True
            win2_active = False
            win2.Hide()
            layout3 = [[sg.Text('Window 3')],
                       [sg.Button('< Prev'), sg.Button('Exit')]]
            win3 = sg.Window('Window 3').Layout(layout3)

    if win3_active:
        ev3, vals3 = win3.Read()
        if ev3 == '< Prev':
            win3.Close()
            win3_active = False
            win2_active = True
            win2.UnHide()
        elif ev3 in (None, 'Exit'):
            break
