This is a problem with virtualenv, it doesn’t redirect 2to3 (probably assuming that it’s too rarely used).
So calling 2to3 “falls through” to the pyenv shim that’s the next on PATH (pyenv does redirect 2to3). And on pyenv level, the default selected version is system (the distro-provided version) for which 2to3 is not installed, so the shim emulates “command not found” error.
But Travis’ Python archives are bundled with pre-created virtualenvs to save time, so even when they fix this, Travis staff will need to recreate the archives for the fix to apply.
Your build log says otherwise.
(Yes, it might be a misnamed venv, I don’t really know how to check.)
In any case, pyenv: 2to3: command not found means that whatever flavor of virtual environment you are using does not override 2to3 and my workaround should work.
The cause is the logilab-astng setup.py, and that has now been replaced with astroid.
The last version of logilab-astng is 2013 https://pypi.org/project/logilab-astng/#files , so you are unlikely to get assistance from them.
Upgrading to astroid will be one solution, highly recommended anyway because logilab-astng is abandonware.
You can also create your own 3to2 script which invokes /path/to/a/real/python3 -m lib2to3 - and put it first in the PATH so it is used before any other 3to2 in your PATH.