Overriding not being kept

It seems that is not possible to have more than one overlay calling python3.override. Based on this solution, I fixed this problem this way:

1- I created a file to keep all python overlays called python_overlays.nix with this content:

python-self: python-super:
{

  nibabel = python-super.nibabel.overrideAttrs (oldAttrs: {
    doInstallCheck = false;
    propagatedBuildInputs = oldAttrs.propagatedBuildInputs
    ++ [python-super.packaging];
  });

  Keras = python-super.Keras.overrideAttrs (oldAttrs: rec {
    pname = "Keras";
    version = "2.2.4";
    src = python-super.fetchPypi {
      pname = "Keras";
      version = "2.2.4";
      sha256 = "1j8bsqzh49vjdxy6l1k4iwax5vpjzniynyd041xjavdzvfii1dlh";
    };
  });

  plaidml = python-super.callPackage ./pkgs/plaidml {
  };
}

2 - I create a file to override the python packages from the python_overlays.nix:

self: super: {
  python3 = super.python3.override {
    packageOverrides = import ./python_overlays.nix;
  };

  python37 = super.python37.override {
    packageOverrides = import ./python_overlays.nix;
  };

  python38 = super.python38.override {
    packageOverrides = import ./python_overlays.nix;
  };
}