Deploy contract to goerli infuria without signing the transaction

Is there a way to deploy a contract on goerli infuria, using web3.js and metamask so I don’t have to sign the transaction, or is it possible to use metamask to sign it, without having to provide the address’ private key? The following code works when using Ganache, for local development, but not when trying to test the contract on goerli Infuria test net.

    const web3 = new Web3(new Web3.providers.HttpProvider(props.smartContract.deployed_network)); // my api key
    const accounts = await ethereum.request({ method: 'eth_accounts' });
    const sender = accounts[0];
    const Contract = await new web3.eth.Contract(JSON.parse(props.smartContract.abi))
        .deploy({data: JSON.parse(props.smartContract.bytecode).object})
        .send({from: sender, gas: 3000000})
        .then(function (res) {
            if (typeof res.options.address !== "undefined") {
                message.value = "The contract was deployed successfully!"
            } else {
                message.value = "Something went wrong! Please check to see if the contract was deployed!"

The error I get when running the script:

Returned error: The method eth_sendTransaction does not exist/is not available