The original contracts are there and you can interact with them directly. Uniswap explicitly publishes frontends on IPFS to make it resilient against themselves. But “p2p” is the wrong term imo when the contract itself has the state/tokens.