Abstract Factory Pattern in Python
As your code presently stands, you don't need the derived Factory classes.  They don't do anything different from each other, so they can all be handled by a concrete base class.
class PlayerFactory:

    def __init__(self, goal_keeper_class, defender_class):
        self._goal_keeper_class = goal_keeper_class
        self._defender_class = defender_class

    def create_goalkeeper(self):
        return self._goal_keeper_class()

    def create_defender(self):
        return self._defender_class()

player_factory = {
    &quot;Football&quot;: PlayerFactory(FootballGoalkeeper, FootballDefender),
    &quot;Hockey&quot;: PlayerFactory(HockeyGoalkeeper, HockeyDefender),
}

Example Usage:
&gt;&gt;&gt; player = player_factory[&quot;Hockey&quot;].create_defender()
&gt;&gt;&gt; type(player)
&lt;class '__main__.HockeyDefender'&gt;
&gt;&gt;&gt; player.play()
I'm playing hockey!
&gt;&gt;&gt;

If there is some aspect of the factories which actually do something different, and thus necessitate separated derived classes, you'll need to include that in your question.