If smart contract A has a balance of 1 ETH, can I call a payable function on Contract B, from a function in Contract A, with a msg.value that would be effectively withdrawn from the balance of smart contract A? As opposed to calling from EOA.
The general syntax for calling a function in another contract with arguments and sending funds is: address.func.value(amount)(arg1, arg2, arg3)
From How can you call a payable function in another contract with arguments and send funds?, which is a duplicate of this question.
Please research your topic a bit more (for example I searched up 'solidity call function payable') before posting; many times you can find your question already on stack overflow.
Welcome to Ethereum Stack Overflow!