They are different services that aim to solve different problems. Lex aims to make NLP simpler for developers by giving them access to their powerful NLP service, and Botpress aims to make the building process easier by providing open source modules. They can work together, in theory, and choosing one does not lock you out of the other, necessarily.
Amazon Lex specializes in NLP powered by deep learning from Amazon. Lex also provides an automatically scaling infrastructure (Lambda functions), and conversation state management, all baked into the service. Lex has technical depth in NLP and infrastructure.
From the Amazon Lex site:
Speech recognition and natural language understanding are some of the most challenging problems to solve in computer science, requiring sophisticated deep learning algorithms to be trained on massive amounts of data and infrastructure. Amazon Lex democratizes these deep learning technologies by putting the power of Amazon Alexa within reach of all developers.
Botpress is an open source project that aims to modularize the bot building experience. They do no specialize, or offer, NLP. They make it easy for you to hook someone else's NLP into their service. I do not believe a Lex middleware exists for Botpress, but one could easily be written using Lex's sdk from amazon.
From an npm Botpress module:
Our philosophy at Botpress is to have a small & powerful core and leverage the best tools available by integrating them as Modules.
From the Botpress website:
Different tools work well for different jobs. We love the simplicity of tools like Chatfuel, but simplicity should not limit your technical ambitions. Tools like the Microsoft Bot Platform are great, but creating and managing bots should not be reserved only for skilled developers.