#17 xDDD
Los 3 son buenos engines.
La ventaja de Phaser es que programas directamente sobre JavaScript sin "compiladores" intermedios que meten mucha morralla y nunca sabes bien lo que hacen. Unity en sus comienzos con el exportador a WebGL te metía más de 30MB en un proyecto vacío. Eso es inasumible para un juego HTML5, donde en la mayoría de mercados tener una carga inicial de más de 2-3 MB es directamente renunciar a más de la mitad de los jugadores. No obstante últimamente creo que el exportador a WebGL ha mejorado mucho en Unity y están reduciendo bastante el tamaño. Va a seguir siendo más de lo que sería con Phaser, pero quizá no tan exagerado.
También es más fácil integrar un juego escrito en JavaScript con cualquier API en JS de terceros. Por ejemplo yo ahora estoy desarrollando básicamente Instant Games para Facebook. No creo que sea fácil usar todas las funcionalidades de esta API en Unity a no ser que Unity provea algún tipo de interfaz en C#, pero tampoco he hecho la prueba. Lo mismo para Construct.
La desventaja de Phaser es que es muy básico y el workflow es mucho más lento. Yo ya tengo una serie de herramientas propias que he ido creando encima de Phaser y PixiJS para simplificar mi trabajo (scripts de animaciones, editor de escenas, etc.), pero Phaser a pelo y siendo nuevo en el tema, te va a llevar mucho más tiempo desarrollar cualquier juego.
Resumiendo: Unity y Construct te van a simplificar el proceso pero vas a obtener un producto menos "artesanal", previsiblemente de menor rendimiento y mayor tamaño. Phaser te permite personalizar el código mucho más y refinar el resultado para optimizarlo a tu necesidad exacta, pero a cambio vas a pagarlo en tiempo de desarrollo.
Los 3 tienen buena documentación y comunidad detrás.