Если я не ошибаюсь, то defaultdict автоматически создаёт ключи которых нет в словаре. В Вашем случае `self.__data[1][2][3]` будут автоматически создаваться словари в каждом элементе. При помощи стандартного dict надо было создавать всё вручную:
self.__data = {}
self._data[1] = {}
self._data[1][2] = {}
self._data[1][2][3] = {}