While i believe this is doable with pulumi.all().apply(), for this specific use case the easiest solution is most likely with pulumi.interpolate. I'm not sure what language you're using, but in TypeScript it would look like this:
`const newarn = pulumi.interpolate`${lambda.arn}:${lambda.version}`;`
Note that after this operation, newarn is still of type Output<string>, it is not a string. It can be used directly as an input to other pulumi resources, but outside of .apply() it cannot be used in any functions expecting a string.