Probably you could try something like this inside on_epoch_end():
outputs = []
for layer in output_layers:
    outputs.append(layer.output)

partial_model = keras.Model(
        inputs=self.model.model.input,
        outputs=outputs)